let arr = [1, [2, [3, [4, [5, [6, [7, 8]]]]]], 9, [10]]
//1. flat api
// console.log(arr.flat(Infinity));

//2. toString()
// console.log(arr.toString().split(',').map(item=>Number(item)));

//3. JSON.stringify()
// console.log(JSON.stringify(arr).replace(/\[|\]/g,'').split(',').map(item=>parseFloat(item)))

//4. 递归
function flat(arr) {
    let res = []
    arr.forEach(item => {
        if (Array.isArray(item)) {
            res = res.concat(flat(item))
        }else{
            res.push(item)
        }
    })
    return res
}

// console.log(flat(arr));

//5.扩展运算符!!!
while(arr.some(item=>Array.isArray(item))){
    // console.log(...arr);
    //循环一次去一层
    arr = [].concat(...arr)
}
console.log(arr);
console.log([].concat(1,2,3));